/***************************************************************************
创建者：华磊
 开始时间：               : 2020.1１.２４
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   io窗口程序
*                                                                         *
 ***************************************************************************/
#include "generalstatus.h"
#include "ui_generalstatus.h"
#include "systemstatus.h"


GeneralStatus::GeneralStatus(int styleId,QWidget *parent) :
    QWidget(parent),
    ui(new Ui::GeneralStatus)
{
    ui->setupUi(this);
    initialDisplayStyle(styleId);

    setTableView();

    initFlag = true;
}

GeneralStatus::~GeneralStatus()
{
    delete ui;
}

void GeneralStatus::initialDisplayStyle(int styleId)
{
    switch (styleId) {
    case 1:
        ui->tableView->setGeometry(10,90,440,350);
        break;
    default:
        break;
    }
}

void GeneralStatus::changeLanguage()
{
    ui->retranslateUi(this);
    setTableView();
}

void GeneralStatus::setTableView()
{
    model = new QStandardItemModel();
    ui->tableView->setModel(model);
    headerView = ui->tableView->horizontalHeader();
//    headerView->setResizeMode(QHeaderView::Fixed);
    model->setColumnCount(5);
    ui->tableView->verticalHeader()->hide();
    ui->tableView->setColumnWidth(0,40);//440
    ui->tableView->setColumnWidth(1,130);
    ui->tableView->setColumnWidth(2,50);
    ui->tableView->setColumnWidth(3,150);
    ui->tableView->setColumnWidth(4,50);
    model->setHeaderData(0,Qt::Horizontal,tr("ID"));
    model->setHeaderData(1,Qt::Horizontal,tr("机器人名称"));
    model->setHeaderData(2,Qt::Horizontal,tr("状态"));
    model->setHeaderData(3,Qt::Horizontal,tr("程序"));
    model->setHeaderData(4,Qt::Horizontal,tr("速度"));

    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择模式，选择单行
    ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

    initFlag = true;

    //2017 03 21暂时隐藏
    ui->label_2->hide();
    ui->labelSer->hide();
}

void GeneralStatus::showGeneralStatusView()
{
    emit generalStatusSearch();
}

void GeneralStatus::updateView()
{
    int n=robotId.size();
    ui->labelRobot->setText(QString::number(n)+tr("台"));//机器人台数

    for(int i = 0;i < n;i++)
    {
        if(initFlag)
        {
            model->setItem(i,0,new QStandardItem(QString::number(robotId[i])));
            model->setItem(i,1,new QStandardItem(robotName[i]));

            if(robotStatus[i] == ENUM_COMMAND_RUN)
            {
                model->setItem(i,2,new QStandardItem(tr("运行")));
            }
            else if(robotStatus[i] == ENUM_COMMAND_CEASE)
            {
                model->setItem(i,2,new QStandardItem(tr("暂停")));
            }
            else
            {
                model->setItem(i,2,new QStandardItem(tr("停止")));
            }

            QString tmp = robotProgram[i];
            QStringList list = tmp.split("/");
            if(list.size()>0)
            {
                model->setItem(i,3,new QStandardItem(list[list.size()-1]));
            }

            model->setItem(i,4,new QStandardItem(QString::number(robotSpeed[i])));

            initFlag = false;
            tmpSize = n;//缓存
        }
        else
        {
            if(tmpSize == n)
            {
                model->item(i,0)->setText(QString::number(robotId[i]));
                model->item(i,1)->setText(robotName[i]);

                if(robotStatus[i] == ENUM_COMMAND_RUN)
                {
                    model->item(i,2)->setText(tr("运行"));
                }
                else if(robotStatus[i] == ENUM_COMMAND_CEASE)
                {
                    model->item(i,2)->setText(tr("暂停"));
                }
                else
                {
                    model->item(i,2)->setText(tr("停止"));
                }

                model->item(i,3)->setText(robotProgram[i]);
                model->item(i,4)->setText(QString::number(robotSpeed[i]));
            }
        }
    }

    if(powerOnTime == "")
    {
        ui->labelPower->setText("-");
    }
    else
    {
        ui->labelPower->setText(powerOnTime);
    }

    if(totalPowerOnTime == "")
    {
        ui->labelTotal->setText("-");
    }
    else
    {
        ui->labelTotal->setText(totalPowerOnTime);
    }

    if(totalStartOnTime == "")
    {
        ui->labelFirst->setText("-");
    }
    else
    {
        ui->labelFirst->setText(totalStartOnTime);
    }

    if(servoOnTime == "")
    {
        ui->labelSer->setText("-");
    }
    else
    {
        ui->labelSer->setText(servoOnTime);
    }
}
